fixed problem with 'all' option in position filter
authorparkrrrr <parkrrrr>
Tue, 17 Oct 2006 13:06:58 +0000 (13:06 +0000)
committerparkrrrr <parkrrrr>
Tue, 17 Oct 2006 13:06:58 +0000 (13:06 +0000)
position.c

index 24aa2d0d3bd11013fd60e08b7d6f4b8cc5b8d959..d8177ad5c478cd50c5d4e29653bf67a96ae9760c 100644 (file)
@@ -138,39 +138,40 @@ position_runqueue(queue *q, int nelems, int qtype)
                                        break;
                        }
                }
-               else if (del ) {
-                       switch (qtype) {
+               else {
+                       if (del ) {
+                           switch (qtype) {
                                case wptdata:
-                                       waypt_del(comp[i]);
-                                       waypt_free(comp[i]);
+                                       waypt_del(comp[j]);
+                                       waypt_free(comp[j]);
                                        del = 0;
                                        break;
                                case trkdata:
-                                       track_del_wpt(cur_rte, comp[i]);
-                                       del = !!purge_duplicates;
+                                       track_del_wpt(cur_rte, comp[j]);
+                                       del = 0;
                                        break;
                                case rtedata:
-                                       route_del_wpt(cur_rte, comp[i]);
+                                       route_del_wpt(cur_rte, comp[j]);
                                        del = 0;
                                        break;
                                default:
                                        break;
+                           }
                        }
-               } else {
-                       j = i; /* advance last use point */
+                       j = i;
                }
        }
        if ( del ) {
                switch (qtype) {
                        case wptdata:
-                               waypt_del(comp[nelems-1]);
-                               waypt_free(comp[nelems-1]);
+                               waypt_del(comp[j]);
+                               waypt_free(comp[j]);
                                break;
                        case trkdata:
-                               track_del_wpt(cur_rte, comp[i]);
+                               track_del_wpt(cur_rte, comp[j]);
                                break;
                        case rtedata:
-                               route_del_wpt(cur_rte, comp[i]);
+                               route_del_wpt(cur_rte, comp[j]);
                                break;
                        default:
                                break;